package com.jzxy.PingFen.utils;

import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonUtils {

    private static final ObjectMapper objectMapper = new ObjectMapper();


    /**
     * 将对象序列化为JSON字符串
     *
     * @param obj 要序列化的对象
     * @return JSON字符串
     * @throws Exception 如果序列化过程中发生错误
     */
    public static String toJson(Object obj) throws Exception {
        if (obj == null) {
            throw new IllegalArgumentException("对象不能为空");
        }
        return objectMapper.writeValueAsString(obj);
    }

    /**
     * 将JSON字符串反序列化为指定类型的对象
     *
     * @param json JSON字符串
     * @param clazz 目标类型
     * @param <T> 目标类型泛型
     * @return 反序列化后的对象
     * @throws Exception 如果反序列化过程中发生错误
     */
    public static <T> T toObject(String json, Class<T> clazz) throws Exception {
        if (json == null || json.isEmpty()) {
            throw new IllegalArgumentException("JSON字符串不能为空");
        }
        return objectMapper.readValue(json, clazz);
    }

}